function criarPlayer(msg){
	var p = new Sprite(32, 32);
	
	p.image = game.assets[msg.sprite];	
	
	//auxiliar movimento lateral
	p.vx = 0;
	p.vy = 0;
	p.velocidade = 4;

	//inicia variavel auxiliar pulo
	p.jx = 0;
	p.jy = 0;
	p.altura = 0;
	//inicia variavel auxiliar para calcular o sprite do frame
	p.pose = 0;

	//inicia status do player
	p.pulando = false;
	p.caindo = false;
	p.movendo = false;

	//localizaca do player
	p.x = msg.tileX * 16;
	p.y = msg.tileY * 16;
	
	p.username = msg.username;
	
	return p;

}

/**
	calculo para mover, pular e atualizar o sprite do player
*/
function atualizarFrame(objeto){

	//mover o objeto para cima
	if (objeto.pulando) {
		objeto.moveBy(objeto.jx, objeto.jy);
		if (objeto.y <= objeto.altura) {
			objeto.pulando = false;
			objeto.caindo = true;
		}
	}else{
		objeto.jy = gravidade;

		var x = Math.floor((objeto.x + objeto.vx) / 16) * 16 + 16;
		var y = objeto.y  + 32;

		if (0 <= x && x < map.width && 0 <= y && y < map.height && !map.hitTest(x, y)) {
			objeto.caindo = true;
			objeto.moveBy(objeto.jx, objeto.jy);
		}else{
			objeto.caindo = false;
		}
	}

	//mover o objeto para os lados
	if(objeto.movendo){
		objeto.moveBy(objeto.vx, objeto.vy);
		if (objeto.vx && ((objeto.x-8) % 16 == 0)) {
			objeto.movendo = false;
		}
	}

	if(objeto.pulando || objeto.caindo){
		objeto.frame = 1;
	}else if(objeto.movendo){
		if (game.frame % 3 == 0) {
			objeto.pose++;
			objeto.pose %= 2;
		}
		objeto.frame = objeto.pose + 1;
	}else{
		objeto.frame = 0;
	}

}